home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 June / PCWorld_2004-06_cd.bin / software / vyzkuste / koolmoves / kmsetup.exe / {app} / Motion Scripts / Tumble In / effect.txt
Text File  |  2002-11-07  |  2KB  |  108 lines

  1. mcN = "letter";
  2.  
  3. alphaInc = (100 - alpha) / increments;
  4. scaleInc = (100 - scale) / increments;
  5.  
  6. aLetters = new Array();
  7.  
  8. for (i = 0; i< numChar; i++)
  9. {
  10.   aLetters[i+0] = i;
  11.   var letter =  this[mcN +i];
  12.   letter._visible = false;
  13.   letter.init = letterInit;
  14.   letter.doEffect = effect;
  15.   letter.number = i;
  16. }
  17.  
  18. function letterInit()
  19. {
  20.   this._visible   = true;
  21.   this.step       = 0;
  22.   this.increments = this._parent.increments;
  23.   this._alpha     = this._parent.alpha;
  24.   this.alphaInc   = this._parent.alphaInc;
  25.   this.scaleInc   = this._parent.scaleInc;
  26.  
  27.   this.scale      = this._parent.scale;
  28.  
  29.   this.angle1     = 720 * Math.random() - 360;
  30.   this.angle2     = 720 * Math.random() - 360;
  31.  
  32.   this.angle1Inc = (0 - this.angle1) / this.increments;
  33.   this.angle2Inc = (0 - this.angle2) / this.increments;
  34.  
  35.   // inner movie clip
  36.   this.letter._rotation = -45;
  37.  
  38.   this._rotation = (this.angle1 + this.angle2) * .5 + 45;
  39.  
  40.   radian = 3.1416 / 180;
  41.  
  42.   angle1Rad = this.angle1 * radian;
  43.   angle2Rad = this.angle2 * radian;
  44.  
  45.   sin45 = Math.sin(45 * radian);
  46.  
  47.   sinAngles = Math.sin(((this.angle1 + this.angle2) * .5 + 45) * radian);
  48.  
  49.   if (sinAngles == 0)
  50.     sinAngles = 1;
  51.  
  52.   this._xscale = this.scale * (Math.cos(angle1Rad) + Math.sin(angle2Rad)) * sin45 / sinAngles;
  53.  
  54.   this._yscale = this.scale * (Math.sin(angle1Rad) + Math.cos(angle2Rad)) * sin45 / sinAngles;
  55. }
  56.  
  57. function effect()
  58. {
  59.   this._alpha  += this.alphaInc;
  60.   this.scale   += this.scaleInc;
  61.  
  62.   this.angle1  += this.angle1Inc;
  63.   this.angle2  += this.angle2Inc;
  64.  
  65.   this._rotation = (this.angle1 + this.angle2) * .5 + 45;
  66.  
  67.   radian = 3.1416 / 180;
  68.  
  69.   angle1Rad = this.angle1 * radian;
  70.   angle2Rad = this.angle2 * radian;
  71.  
  72.   sin45 = Math.sin(45 * radian);
  73.  
  74.   sinAngles = Math.sin(((this.angle1 + this.angle2) * .5 + 45) * radian);
  75.  
  76.   if (sinAngles == 0)
  77.     sinAngles = 1;
  78.  
  79.   this._xscale = this.scale * (Math.cos(angle1Rad) + Math.sin(angle2Rad)) * sin45 / sinAngles;
  80.  
  81.   this._yscale = this.scale * (Math.sin(angle1Rad) + Math.cos(angle2Rad)) * sin45 / sinAngles;
  82.  
  83.   this.step += 1;
  84.  
  85.   if (this.step >= this.increments)
  86.   {
  87.     this._xscale = 100;
  88.     this._yscale = 100;
  89.     this._rotation = 45;
  90.     this._alpha = 100;
  91.     this.gotoAndStop("end");
  92.   }
  93. }
  94.  
  95. function shuffle()
  96. {
  97.   return Math.floor(Math.random() * 3) -1;
  98. }
  99.  
  100. if (random == 1)
  101. {
  102.   aLetters.sort(shuffle);
  103. }
  104.  
  105. if (reverse == 1)
  106. {
  107.   aLetters.reverse();
  108. }